关于C语言的问题`求大虾们帮帮..马上要考试咯.!

来源:百度知道 编辑:UC知道 时间:2024/06/23 05:19:14
填空:
(1)已知:int a[3] = {1, 2, 3}; 则 *(a+1)+2 的值为 ___【1】___。
(2)下面程序段的输出结果是___【2】___。
int a=1;
switch(a<=1) {
case 0:printf("A");
case 1:printf("B");
default:printf("C"); }
(3)以下程序运行后的输出结果是____【3】___。
main()
{int a=5,b=4,c=3,d=2;
if (a>b>c)
printf(“%d\n”,d);
else if( (c-1 >=d) = =1 )
printf( “%d\n”,d+1);
else
printf( “%d\n”,d+2); }
(4)下面程序的功能是求f(n) = 1-1/4+1/9-1/16+…+ 1/(2n-1)2 -1/(2n)2之和,请填空。
main()
{ int i, n=10;
float s =0. ;
for( i = 1; i <= n; i++)
【4】 ;
printf("%4.3f",s);
}
(5)下面程序段的输出结果是___【5】___
int a[][3]={{1,2,3},{1,2,3},{1,2,3}};
int s=0,m,n;
for(m=0;m<=2;m++)
for(n=0;n<=3;n++)
{ if (a[m][n]= =2) break;
s+= a[m][n]; }
printf(“%d”,s);
(6)以下程序运行后的输出结果是____【6】____
#include

填空:
1. 4
*(a+1)中a是数组的首地址,就是a[0]元素的首地址,而a+1就是a[1]的首地址,知道地址了,*运算符就是从指定的地址中取出值,也就是a[1]的值即2,再用该值加上2就是整个表达式的值了,那便是4。
2. BC
对于多分支选择语句switch(),都是先判断switch后括号内表达式,该题为a<=1,由于a的值是1,故此该表达式为真就是1,然后看switch内的语句,由于是1所以,直接找到case: 1然后执行其后面的语句,就是输出B,执行完后流程控制转到下一个case或者default继续执行,“case常量表达式”只是个语句标号作用,并不进行条件判断,执行switch语句时,根据switch后表达式的值找到匹配的入口标号,从此标号开始执行下去,不再进行判断,如果想限制只输出B的话只需要在printf("B");后面添置break;跳出该语句,从而就不用执行下面default语句了。
3. 3
对于a>b>c,比较顺序是从左往右依次判断,就是先判断a>b,根据所给条件,这是肯定的故此a>b为真,关系表达式真就是1,所以后面就相当于1>c的判断,由于c值为3所以为假,if判断不成立;接着判断(c-1 >=d) = =1 ,很显然c-1后的值为2确实>=d成立为真就是1然后判断1==1显然也是真为1,所以if成立输出后面的语句。此处稍微涉及到运算符的优先级问题,算术运算符>关系运算符,所以在c-1>=d时,先进行c-1的运算。
4.很遗憾,此题我没想出具体答案,我把我所想的写下来,供你参考,不好意思
此题关键是当i为偶数时,为负号。
main()
{
int i, n=10;
float s =0,t=1.0 ;
for( i = 1; i <= n; i++)
{
s+=t/(i*i); -----此处我引用了一个t来改变符号
t=-t;
};
printf("%4.3f",s);
}
5. 3
此题是个